//#include "process.h"
//#include<string.h>
//#include<unistd.h>
//
//const char *str="|/-\\";
//
//void process_v3(double rate){
//    static char bar[SIZE]={0};
//    int num=strlen(str);
//    if(rate<=MAX_RATE&&rate>=0){
//        printf("[%-100s][%.1f%%][%c]\r",bar,rate,str[(int)rate%num]);
//        fflush(stdout);
//        if(rate<MAX_RATE){
//            bar[(int)rate]=STYLE_BODY;
//            bar[(int)rate+1]=STYLE_HEAD;
//        }else{
//            bar[(int)rate]=STYLE_BODY;
//        }
//    }
//}
#include "process.h" //模拟实现进度条加载过程中不移动时，数字不改变时，（即现实中加载的资源不足以1%时），后面的光标一直旋转（显示加载中）的效果。
#include<string.h>
#include<unistd.h>

const char *str="|/-\\";

void process_v3(double rate){
    static char bar[SIZE]={0};
    int num=strlen(str);
    static int cnt=0;

    if(rate<=MAX_RATE&&rate>=0){
        cnt++;
        cnt=(cnt>=num?0:cnt);
        printf("[%-100s][%.1f%%][%c]\r",bar,rate,str[cnt]);
        fflush(stdout);
        if(rate<MAX_RATE){
            bar[(int)rate]=STYLE_BODY;
            bar[(int)rate+1]=STYLE_HEAD;
        }else{
            bar[(int)rate]=STYLE_BODY;
        }
    }
}


